package com.ticket.system.service;

import java.util.List;

import com.google.common.collect.Table;
import com.ticket.common.core.domain.AjaxResult;
import com.ticket.system.domain.YanchuTicketPrice;
import com.ticket.system.domain.vo.*;

/**
 * 场次价格Service接口
 * 
 * @author ruoyi
 * @date 2023-09-27
 */
public interface IYanchuTicketPriceService 
{
    /**
     * 查询场次价格
     * 
     * @param id 场次价格主键
     * @return 场次价格
     */
    public YanchuTicketPrice selectYanchuTicketPriceById(Long id);

    /**
     * 查询场次价格列表
     * 
     * @param yanchuTicketPrice 场次价格
     * @return 场次价格集合
     */
    public List<YanchuTicketPrice> selectYanchuTicketPriceList(YanchuTicketPrice yanchuTicketPrice);

    public List<PriceVo> selectTicketPriceVoList(Long sessionId);
    /**
     * 新增场次价格
     * 
     * @param yanchuTicketPrice 场次价格
     * @return 结果
     */
    public int insertYanchuTicketPrice(YanchuTicketPrice yanchuTicketPrice);

    /**
     * 修改场次价格
     * 
     * @param yanchuTicketPrice 场次价格
     * @return 结果
     */
    public int updateYanchuTicketPrice(YanchuTicketPrice yanchuTicketPrice);

    public List<SeatDetailVo> selectSeatVoDetailList(Long sessionId);

    /**
     * 批量删除场次价格
     * 
     * @param ids 需要删除的场次价格主键集合
     * @return 结果
     */
    public int deleteYanchuTicketPriceByIds(Long[] ids);

    /**
     * 删除场次价格信息
     * 
     * @param id 场次价格主键
     * @return 结果
     */
    public int deleteYanchuTicketPriceById(Long id);

    public Table<String, String, PriceSeatVo> selectPriceList(Long sessionId);

    public AjaxResult calcPrice(List<SeatVo> seatVo);

    /**
     * 处理票档价格座位及预留座座位处理
     *
     * @param ticketAndResVOs
     * @return
     */
    int disposeTickAndRes(List<TicketAndResVO> ticketAndResVOs);
}
